//
// 设备服务
//

package worker

// 服务消息
type SevMessage struct {
	SevId		string			`json:"sev"`
	Message 	interface{}		`json:"msg"`
}

// 服务推送
type SevPost  struct {
	SevId		string			`json:"sev"`
	Post 		interface{}		`json:"post"`
}

// 操作请求关联的服务
type SevRequest struct {
	Type 	string			`json:"type"`
	Date 	interface{}		`json:"data"`
}

//	操作请求
type Request struct {
	DevId 		string			`json:"dev"`
	SevId		string			`json:"sev"`
	Request	 	SevRequest		`json:"request"`
}

// 操作请求关联的服务
type SevNotify struct {
	Type 	string			`json:"type"`
	Date 	interface{}		`json:"data"`
}

// 状态通知
type Notify struct {
	DevId	string			`json:"dev"`
	SevId	string			`json:"sev"`
	Notify 	SevNotify		`json:"notify"`
}

// 设备状态信息
type SevStateInfo struct {
	State 		string		`json:"state"`
	Operates	[]string	`json:"operates"`
}

//
// 基本服务对外接口
//
type SevInterface interface {
	Request(data interface{}) (err error)
	Message(data interface{}) (err error)

	// 获取状态状态
	GetState()	interface{}
	// 获取服务详细信息
}

//
// 服务
//
type Service struct {
	Id 		string			`json:"id"`

	State 		string		`json:"state"`
	Operates	[]string	`json:"operates"`

	// 设备消息与操作产生的时间
	Post 	chan 	[]byte
	Notify 	chan 	[]byte
}


// 操作默认实现
func (sev *Service) Request(data interface{}) (err error) {
	return nil
}

// 消息默认实现
func (sev *Service) Message(data interface{}) (err error) {
	return nil
}

// 获取状态默认实现
func (sev *Service) GetState()	interface{} {
	return nil
}

